import { ref, watch, reactive } from "vue"
import request from '@/utils/request'
import buttonAction from './buttonAction'
import button from '@/button'
import {Plus} from '@element-plus/icons-vue'
import {listDictItemByCode} from '@/api/config/dic'
export const tableItem = reactive({
    select: false,//多选框
    index: !true,//顺序
    loading: false,
    expandAll: false,//树形默认展开
    tree: false,//树形
    column: [
		{
			align: 'center',
			label: '排序',
			prop: 'orderNum',
			width: '100'
		},
        {
            align: 'center',
            label: '名称',
            prop: 'name',
        },
		{
			align: 'center',
			label: '状态',
			prop: '',
			htmlContent: row => {
				return `<span>${row.disableFlag == 1? '禁用' : '启用'}</span>`
			},
		},
        {
            label: '操作',
            prop: 'action',
            align: 'center',
            component: buttonAction,
            width: '400'
        }

    ],
    pageInfo: {
        pagesClose: true,
        request: {
            "name": "",
            "typeCode": "",
        },
        url: '',//分页路由，不传的话需要传入自定义的分页函数paging 传入时定义的分页函数paging会失效
        method: '',//分页请求方法，不传默认为POST
        // 分页函数paging
        paging: function () {
            let typeCode = sessionStorage.getItem('typeCode')
			tableItem.pageInfo.request.typeCode = typeCode
			tableItem.loading = true
			listDictItemByCode(tableItem.pageInfo.request).then(res => {
				tableItem.tableData.data = res.rows
				tableItem.tableData.total = res.total
				tableItem.loading = false
			}).catch(() => { tableItem.loading = false });

            for (const key in tableItem.pageInfo.request) {
                !tableItem.pageInfo.request[key] ? tableItem.pageInfo.request[key] = null : ''
            }
            if (!tableItem.pageInfo.request) { return }
            tableItem.loading = true
        }
    },
    // 分页数据 自定义分页函数paging时需要把值赋给tableData
    tableData: {
        total: '',//分页总计
        // 分页数据
        data: []
    },
    // 操作栏按钮
    btnArray: [
        {
            type: 'primary',//类别 摈弃了text
            label: '修改',
            labelEn: 'edit',
            hasPermi:[button.traincourseedit||null],
            show: true,
            plain: true,//镂空按钮  优先文字按钮
            text: true,//文字按钮
            customParameters: 'edit',//自定义函数参数
            // 按钮方法
            handle: function (row) {
                console.log('row', row)
            }
        },
		{
			label: '启用',
			type: 'primary',//类别 摈弃了text
			labelEn: 'status',
			show: true,
			hasPermi: [button.systemuserorgEnable || null],
			plain: true,//镂空按钮  优先文字按钮
			text: true,//文字按钮
			// 按钮方法
			handle: function (row) {
			}
		},
		{
			label: '禁用',
			type: 'danger',//类别 摈弃了text
			labelEn: 'status',
			show: true,
			hasPermi: [button.systemuserorgEnable || null],
			plain: true,//镂空按钮  优先文字按钮
			text: true,//文字按钮
			// 按钮方法
			handle: function (row) {
			}
		},
        {
            type: 'danger',//类别 摈弃了text
            label: '删除',
            hasPermi:[button.traincourseremove||null],
            show: true,
            plain: true,//镂空按钮  优先文字按钮
            text: true,//文字按钮
            // 按钮方法
            handle: function (row) {
                console.log('row', row)
            }
        },
    ],
    moreBtnArrayText: '自定义更多',//自定义更多标题 默认为更多
    moreBtnArray: [{
        show: true,//
        type: 'primary',
        text: '搜索',
        handle: () => {
            console.log('moreBtnArray')
        }
    },
    {
        show: true,
        type: 'primary',
        text: '新增',
        hasPermi:'',
        icon: Plus,
        customParameters: 'add',//自定义函数参数
        handle: () => {
            console.log('handle')
        }
    },
    ],
    // 选择框触发
    selectChange: function (row) {
        console.log(row)
    },
}
)
